1. Field of the Invention
The present invention relates to a method of demodulating and decoding a received encoded interleaved signal, more particularly to de-interleaving and scaling of soft-decision demodulated output words. Such a method is particularly useful in a receiver that receives such encoded interleaved signal through a strongly fading channel. The channel can be a wireless channel carrying communication signals or broadcast signals, but also a non-wireless channel exhibiting fading of signals. The method can be used in modems, cell phone systems, digital audio broadcasting systems, digital television systems, or any other system where interleaving of source code bits is done to overcome channel shortcomings.
2. Description of the Related Art
In the U.S. Pat. No. 5,241,563, demodulation, de-interleaving and decoding of a convolutional encoded interleaved received signal is disclosed. Interleaving digital data before transmission and de-interleaving the data after reception causes bursts of channel errors to be spread out in time, and, as described, is particularly useful for strongly fading channels, or when signals arrive as multipath signals over two or more paths of different lengths. For decoding such received signals, various techniques are known, one such technique being the well-known Viterbi algorithm, which uses the trellis structure of a convolutional code. For any convolutional code, the output of the Viterbi decoder is a sequence of estimated information digits which is maximum likelihood conditioned upon the received sequence.
As disclosed in the U.S. Pat. No. 6,125,136, convolutional codes involve memory, an output code of a convolutional encoder being a sequence of n bits generated for every input of k source digits, a ratio k/n being the code rate. For convolutional codes, the optimum decoding process amounts to finding the single path through the code trellis that most nearly represents the demodulated bit sequence. The transmitted code digits correspond to a specific path through the trellis. The receiver determines the most likely path that corresponds to the received sequence and then uses this path to specify the decoded data sequence that would have generated the path. As described in U.S. Pat. No. 6,125,136, a system that uses such trellis coded signals is a direct sequence spread spectrum communication system, e.g. a CDMA system that has been adopted as a standard in North America. In such CDMA systems signals are received that are transmitted on strongly fading channels, typically as a multi-path received signal.
In such CDMA systems, one type of receiver that is used is the well-known so-called rake receiver that ratio combines rays of a multi-path received signal. The rake receiver, or any other type of suitable receiver, produces soft-decision demodulated output words that, after de-interleaving, are provided to a Viterbi decoder so as to obtain decoded data.
Furthermore, soft decision scaling and quantization methods in digital receivers are known that reduce the amount of memory and the complexity of the arithmetic in the receiver, as part of the Viterbi forward error correction algorithm. In order to do that, an estimate of the signal power is used to apply appropriate scaling and so bits can be discarded without excessive overflow (clipping) or underflow (accidental insertion of erasures). Known methods of scaling include application of a fixed scaling factor, and buffering of an entire frame of data and mapping the mean to a chosen point within the dynamic range of the word size or length of the soft-decision demodulated output words. Application of a fixed scaling factor is prone to loss of information due to underflow and overflow. Mapping the mean to a chosen point is extremely memory intensive.
The handbook “Mobile Radio Communications”, R. Steele, Pentech Press Limited, London, 1992, reprinted 1994, in Chapter 4, pp. 347-398 describes channel coding, interleaving techniques, convolutional codes and the Viterbi algorithm. More particularly, on pages 350-353 block de-interleaving is described that uses a de-interleaving memory. In one block de-interleaver, at the receiver, the de-interleaver feeds the de-interleaving memory in one column at a time until the de-interleaving memory is filled and removes the symbols a row at a time, the inverse permutation of the interleaving memory at the side of the transmitter. In another block de-interleaver, the symbols are written a row at a time. In the one block interleaver/de-interleaver, interleaving adds considerable delay. In the other block interleaver/de-interleaver, the interleaver delay is negligible, end-to-end delay mainly being due to the de-interleaver.